package com.hrt.day07.generic

/**
 * 视图绑定
 */
object ViewBound {
    def main(args: Array[String]): Unit = {
//        val max1 = max(10, 20)
        val max1 = max("a", "b")
        println(max1)
        
    }

    // idea会建议你使用这种方式,视图绑定已经过时了
    /*def max[T](x: T, y: T)(implicit ev$1: T => Ordered[T])= {
        if(x > y) x
        else y
    }*/

    def max[T<%Ordered[T]](x: T, y: T)= {
        if(x > y) x
        else y
    }
}
/**
视图绑定:
    viewBound
    T <% Ordered[T]
    表示一定要存在一个隐式转换函数
        T => Ordered[T]
        Int => Ordered[Int]
    def max[T](x: T, y: T)(implicit ev$1: T => Ordered[T])
 */
